Python - For Loop
A for loop is used for iterating over a sequence (that is either a list, a tuple, a dictionary, a set, or a string).
This is less like the for keyword in other programming languages, and works more like an iterator method as found in other object-orientated programming languages.
With the for loop we can execute a set of statements, once for each item in a list, tuple, set etc.
Print each fruit in a fruit list:
x=["apple","banana","cherry"]
for i in x:
print(i)
====o/p====
apple
banana
cherry
The for loop does not require an indexing variable to set beforehand.
Even strings are iterable objects, they contain a sequence of characters.
for x in "banana":
print(x)
=====o/p=====
b
a
n
a
n
a
With the break statement we can stop the loop before it has looped through all the items.
Exit the loop when i is "banana":
x=["apple","banana","cherry"]
for i in x:
print(i)
if i == "banana":
break
====o/p====
apple
banana
Exit the loop when i is "banana", but this time the break comes before the print.
x=["apple","banana","cherry"]
for i in x:
if i == "banana":
break
print(i)
=====o/p=====
apple
With the continue statement we can stop the current iteration of the loop, and continue with the next.
x=["apple","banana","cherry"]
for i in x:
if i == "banana":
continue
print(i)
====o/p====
apple
cherry
To loop through a set of code a specified number of times, we can use the range() function.
The range() function returns a sequence of numbers, starting from 0 by default, and increments by 1 (by default), and ends at a specified number.
for x in range(10)
print(x)
====o/p====
0
1
2
3
4
5
6
7
8
9
( Note that range(10) is not the values of 0 to 10, but the values 0 to 9 ).
## The range() function defaults to 0 as a starting value, however it is possible to specify the starting value by adding a parameter: range(2, 9), which means values from 2 to 9 (but not including 9):
for x in range(2,9)
print(x)
====o/p====
2
3
4
5
6
7
8
## The range() function defaults to increment the sequence by 1, however it is possible to specify the increment value by adding a third parameter: range(2, 30, 3):
for x in range(2,20,3)
print(x)
====o/p====
2
5
8
11
14
17
("In the range, 3 indicates the difference between each number in the sequence")
The else keyword in a for loop specifies a block of code to be executed when the loop is finished.
for i in range(6):
print(i)
else:
print("finally finished")
=====o/p=====
0
1
2
3
4
5
finally finished
A nested loop is a loop inside a loop.
The "inner loop" will be executed one time for each iteration of the "outer loop".
# print adjective for each fruit
adj=["red","big","tasty"]
fruits=["apple","banana","cherry"]
for x in adj:
for y in fruits:
print(x,y)
====o/p=====
red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry
for loops cannot be empty, but if we have a for loop with no content for some reason , put in the pass statement to avoid getting an error.
for x in [0,1,2]:
pass
====o/p====
>>>
[output gets as blank as we entered pass statement,if not we will get an error]